<template>
    <a-spin :spinning="confirmLoading">
        <j-form-container :disabled="formDisabled">
            <a-form-model ref="form" :model="model" :rules="validatorRules" slot="detail">
                <a-row>
                    <a-col :span="24">
                        <a-form-model-item label="预订单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="bookCode">
                            <a-input v-model="model.bookCode" placeholder="请输入预订单号" disabled></a-input>
                        </a-form-model-item>
                    </a-col>
                    <a-col :span="24">
                        <a-form-model-item label="收款单号" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="receiptCode">
                            <a-input v-model="model.receiptCode" placeholder="系统自动生成" disabled></a-input>
                        </a-form-model-item>
                    </a-col>
                    <a-col :span="24">
                        <a-form-model-item label="收款类型" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="receiptType">
                            <j-dict-select-tag type="list" v-model="model.receiptType" dictCode="receipt_type"
                                placeholder="请选择收款类型" />
                        </a-form-model-item>
                    </a-col>

                    <a-col :span="24">
                        <a-form-model-item label="付款方式" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="payType">
                            <j-dict-select-tag type="list" v-model="model.payType" dictCode="pay_type"
                                placeholder="请选择付款方式" />
                        </a-form-model-item>
                    </a-col>
                    <a-col :span="24">
                        <a-form-model-item label="应收账款" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="receiptAmt">
                            <a-input-number v-model="model.receiptAmt" placeholder="请输入应收账款" style="width: 100%" />
                        </a-form-model-item>
                    </a-col>
                    <a-col :span="24">
                        <a-form-model-item label="备注" :labelCol="labelCol" :wrapperCol="wrapperCol" prop="remark">
                            <a-input v-model="model.remark" placeholder="请输入备注"></a-input>
                        </a-form-model-item>
                    </a-col>
                </a-row>
            </a-form-model>
        </j-form-container>
    </a-spin>
</template>

<script>

import { httpAction, getAction } from '@/api/manage'
import { validateDuplicateValue } from '@/utils/util'

export default {
    name: 'YuDingShouKuanForm',
    components: {
    },
    props: {
        //表单禁用
        disabled: {
            type: Boolean,
            default: false,
            required: false
        },
        yudingdan: {
            type: Object,
            required: true,
        }
    },
    data() {
        return {
            model: {
                bookCode: this.yudingdan.bookCode
            },
            labelCol: {
                xs: { span: 24 },
                sm: { span: 5 },
            },
            wrapperCol: {
                xs: { span: 24 },
                sm: { span: 16 },
            },
            confirmLoading: false,
            validatorRules: {
            },
            url: {
                add: "/room/roomBookReceipt/add",
                edit: "/room/roomBookReceipt/edit",
                queryById: "/room/roomBookReceipt/queryById"
            }
        }
    },
    computed: {
        formDisabled() {
            return this.disabled
        },
    },
    created() {
        //备份model原始值
        this.modelDefault = JSON.parse(JSON.stringify(this.model));
    },
    methods: {
        add() {
            this.edit(this.modelDefault);
        },
        edit(record) {
            this.model = Object.assign({}, record);
            this.visible = true;
        },
        submitForm() {
            const that = this;
            // 触发表单验证
            this.$refs.form.validate(valid => {
                if (valid) {
                    that.confirmLoading = true;
                    let httpurl = '';
                    let method = '';
                    if (!this.model.id) {
                        httpurl += this.url.add;
                        method = 'post';
                    } else {
                        httpurl += this.url.edit;
                        method = 'put';
                    }
                    httpAction(httpurl, this.model, method).then((res) => {
                        if (res.success) {
                            that.$message.success(res.message);
                            that.$emit('ok');
                        } else {
                            that.$message.warning(res.message);
                        }
                    }).finally(() => {
                        that.confirmLoading = false;
                    })
                }

            })
        },
    }
}
</script>